#ifndef PPACMD_H
#define PPACMD_H

void LogiEscapeSequenceLong(uint32_t base);
int LogiNegociation(uint32_t base, uint8_t negociation_byte);
uint32_t ReadRegister(uint32_t base, uint32_t register_num, uint8_t *out);
uint32_t WriteRegister(uint32_t base, uint32_t register_num, uint8_t data);
void DumpRegisters(uint32_t base);
void SwitchLight(uint32_t base, _Bool on);
void ResetHardware(uint32_t base);
void SetMotorSpeed(uint32_t base, uint32_t speed, _Bool forward);
void GetSwitchesState(uint32_t base);
void SetDummyCountOnPPA(uint32_t base, uint32_t count);
uint32_t GetDummyCountOnPPA(uint32_t base);
void SetTargetLineCount(uint32_t base, uint32_t count);
void SetScanWidthOnPPA(uint32_t base, uint32_t w);
void InitMotorSpeed(uint32_t base);
uint32_t GetFIFOlineCount(uint32_t base);
void SwitchToScanMode(uint32_t base);
void SetHwInScanMode(uint32_t base);
void ReadData(uint32_t base);
_Bool IsPowerPlugged(uint32_t base);
_Bool TestCommunication(uint32_t base);
void ReadPPAID(uint32_t base);
void ReadScannerID(uint32_t base);
 
#endif /* PPACMD_H */
